home *** CD-ROM | disk | FTP | other *** search
/ Aminet 49 / Aminet 49 (2002)(GTI - Schatztruhe)[!][Jun 2002].iso / Aminet / dev / misc / FlexCat.lha / Lib / Oberon-A.sd < prev    next >
Text File  |  1999-11-28  |  2KB  |  94 lines

  1. ##rem $Id: Oberon-A.sd,v 1.2 1999/11/28 03:36:41 carlos Exp $
  2. ##stringtype Oberon
  3. ##shortstrings
  4. MODULE %o3;
  5. (****************************************************************
  6.    This file was created automatically by `%fv'
  7.    Do NOT edit by hand!
  8.    Oberon-A source description C 1994 by Albert Weinert
  9.    Using with Oberon-A Interfaces for AmigaOS Release 3.1
  10.  
  11.    Application: %b
  12.    Language   : %l
  13.    Version    : %v
  14.    Description: %f0
  15.  
  16. ****************************************************************)
  17.  
  18. (* $P- *)
  19.  
  20. IMPORT
  21.   lo := Locale, e := Exec, u := Utility, y := SYSTEM;
  22.  
  23. CONST
  24.   builtinlanguage = %l;
  25.   version = %v;
  26.  
  27. CONST
  28.   %i* = %d;
  29.  
  30. TYPE
  31.   AppString = RECORD;
  32.      id  : LONGINT;
  33.      str : e.STRPTR;
  34.   END;
  35.   AppStringArray = ARRAY %n OF AppString;
  36.  
  37. VAR
  38.   AppStrings : AppStringArray;
  39.   catalog : lo.CatalogPtr;
  40.  
  41.   PROCEDURE SetStrings;
  42.     BEGIN
  43.       AppStrings[%e].id := %i; AppStrings[%e].str := y.ADR( %s );
  44.     END SetStrings;
  45.  
  46.   PROCEDURE CloseCatalog*();
  47.     BEGIN
  48.       IF catalog # NIL THEN lo.base.CloseCatalog (catalog); catalog:=NIL END;
  49.    END CloseCatalog;
  50.  
  51.   PROCEDURE OpenCatalog*(loc:lo.LocalePtr; language:ARRAY OF CHAR);
  52.     VAR Tag : ARRAY 4 OF u.TagItem;
  53.     BEGIN
  54.       CloseCatalog();
  55.       IF (catalog = NIL) & (lo.base # NIL) THEN
  56.         Tag[0].tag := lo.ocBuiltInLanguage; Tag[0].data := y.ADR( builtinlanguage );
  57.         Tag[1].tag := u.tagSkip;          Tag[1].data := y.ADR( language );
  58.         Tag[2].tag := lo.ocVersion;         Tag[2].data := version;
  59.         Tag[3].tag := u.tagDone;
  60.  
  61.         IF language # "" THEN
  62.           Tag[1].tag:= lo.ocLanguage;
  63.         END;
  64.         catalog := lo.base.OpenCatalogA (loc, "%b.catalog", Tag);
  65.       END;
  66.     END OpenCatalog;
  67.  
  68.   PROCEDURE GetString* (num: LONGINT): e.STRPTR;
  69.     VAR
  70.       i: LONGINT;
  71.       default: e.STRPTR;
  72.     BEGIN
  73.       i := 0; WHILE (i < %n) & (AppStrings[i].id # num) DO INC (i) END;
  74.  
  75.       IF i # %n THEN
  76.         default := AppStrings[i].str;
  77.       ELSE
  78.         default := NIL;
  79.       END;
  80.  
  81.       IF catalog # NIL THEN
  82.         RETURN lo.base.GetCatalogStr (catalog, num, default^);
  83.       ELSE
  84.         RETURN default;
  85.       END;
  86.     END GetString;
  87.  
  88. BEGIN
  89.   catalog := NIL;
  90.   lo.OpenLib( FALSE );
  91.   SetStrings;
  92. END %o3.
  93.  
  94.